home *** CD-ROM | disk | FTP | other *** search
/ Tiger Disk 13 / Tiger_Disk_013_19xx_Tiger-Crew-Disk_de_Side_B.d64 / lektion 4 (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  8KB  |  202 lines

  1. 1 rem*********************************
  2. 2 rem*----------lektion-4------------*
  3. 3 rem*-------------------------------*
  4. 4 rem*----(w)-by-arno-freisinger-----*
  5. 5 rem*-------------------------------*
  6. 6 rem*--------teachmaster------------*
  7. 7 rem*-------------------------------*
  8. 8 rem*********************************
  9. 10 poke 53280 , 11 : poke 53281 , 11 : print "[155]" : poke 2050,1
  10. 15 sys 42291 : poke 46 , peek (35) : poke 45 , peek (781) + 2 : clr
  11. 20 print"[147]"tab(15)"teachmaster"
  12. 30 print""tab(09)"(w) by arno freisinger"
  13. 40 print""tab(10)"                    "
  14. 50 for i = 1 to 2000 : next
  15. 60 print"[147]"tab(15)"lektion 4"
  16. 70 for i = 1 to 1000 : next
  17. 75 get a$ : get a$
  18. 80 rem********************************
  19. 90 rem*-------- seite 1 -------------*
  20. 99 rem********************************
  21. 100 print"[147]im letzten teil ging es ja richtig rund."
  22. 110 print"wir haben schon jetzt eine ganze menge"
  23. 120 print"befehle kennengelernt.aber jetzt ist"
  24. 130 print"es wieder zeit, ein bischen grundlagen-"
  25. 140 print"forschung zu betreiben.der computer hat"
  26. 150 print"das am anfang erwaehnte statusregister."
  27. 160 print"dieses register wird im weiteren verlauf"
  28. 170 print"dieser lektion fuer uns sehr wichtig"
  29. 180 print"werden.dieses register besitzt,wie jede"
  30. 190 print"andere speicherstelle 8 bits. die bits"
  31. 200 print "" tab(14) "taste druecken"
  32. 210 print "" tab(18) "-1-"
  33. 220 gosub 250
  34. 230 on a goto 300 , 60
  35. 247 rem********************************
  36. 248 rem*------ tasten abfrage --------*
  37. 249 rem********************************
  38. 250 get a$ : if a$ = "" then 250
  39. 260 if a$ = "z" then a = 2 : return
  40. 270 a = 1 : return
  41. 280 rem********************************
  42. 290 rem*------ seite 2 ---------------*
  43. 300 rem********************************
  44. 310 print"[147]dieses registers nennt man flags."
  45. 320 print" 0 0 0 0 0 0 0 0 "
  46. 330 print" n v - b d i z c  flags[146]"
  47. 340 print"dies ist die richtige reihenfolge der"
  48. 350 print"flags.sie sehen, ein bit hat keine"
  49. 360 print"bedeutung.das c ist die abkuerzung     "
  50. 370 print"fuer das carry-flag, das heisst zu "
  51. 380 print"deutsch ueberlaufflag.es wird dann vom"
  52. 390 print"mikroprozessor gesetzt,wenn eine "
  53. 400 print"speicherstelle angenommen einen inhalt"
  54. 410 print"von $ff (255) besitzt (sie wissen  "
  55. 430 print""tab(14)"taste druecken"
  56. 440 print""tab(18)"-2-"
  57. 450 gosub 250 : on a goto 460 , 100
  58. 460 rem*******************************
  59. 463 rem*------- seite 3 -------------*
  60. 465 rem*******************************
  61. 467 print"[147]hoffentlich noch,das 255 der hoechste"
  62. 470 print"wert ist,den ein byte annehmen kann)."
  63. 480 print"erhoeht man nun den wert, so ist das"
  64. 490 print"c-flag gesetzt und die speicherstelle"
  65. 500 print"hat den wert 0 !! ab jetzt werde ich das"
  66. 510 print"carry-flag c-flag nennen.dieses flag"
  67. 520 print"kann man auch von hand setzen. mit"
  68. 530 print"dem befehl sec[146].mit dem befehl clc[146] kann"
  69. 540 print"man das c-flag loeschen.das c-flag"
  70. 550 print"kann man auch abfragen mit den befehlen"
  71. 580 print""tab(14)"taste druecken"
  72. 590 print""tab(18)"-3-"
  73. 600 gosub 250 : on a goto 610 , 300
  74. 610 rem********************************
  75. 620 rem*------- seite 4 --------------*
  76. 630 rem********************************
  77. 640 print"[147]bcs[146] und bcc[146].bcs (schrittweite) ver-"
  78. 650 print"zweigt,wenn das c-flag gesetzt ist."
  79. 660 print"bcc (schrittweite) verzweigt,wenn das"
  80. 670 print"c-flag geloescht ist.die schrittweite"
  81. 680 print"ist hier so,dass sie nicht wie eine"
  82. 690 print"adresse eingesetzt werden kann, sie"
  83. 700 print"gibt lediglich die entfernung an"
  84. 710 print"zu der gemeinten adresse.die entfernung"
  85. 720 print"ist in bytes auszurechnen (achtung[146]"
  86. 730 print"sie darf nicht groesser als 128 bytes"
  87. 750 print""tab(14)"taste druecken"
  88. 760 print""tab(18)"-4-"
  89. 770 gosub 250 : on a goto 780 , 460
  90. 780 rem********************************
  91. 790 rem*------- seite 5 --------------*
  92. 800 rem********************************
  93. 820 print"[147]sein!).wenn sie in den speicher-"
  94. 830 print"bereich zurueckspringen wollen,"
  95. 840 print"der eine kleinere adresse hat, dann"
  96. 850 print"muessen sie die adresse von $ff (255)"
  97. 860 print"abziehen.wenn sie in einen hoeheren"
  98. 870 print"bereich springen wollen, dann muessen "
  99. 880 print"sie den abstand als schrittweite"
  100. 890 print"einsetzen. aber denken sie daran, dass"
  101. 900 print"der abstand nicht groesser sein darf wie"
  102. 910 print"128 bytes !.das wars zum c-flag, jetzt"
  103. 920 print""tab(14)"taste druecken"
  104. 930 print""tab(18)"-5-"
  105. 940 gosub 250 : on a goto 950 , 610
  106. 950 rem********************************
  107. 960 rem*-------- seite 6 -------------*
  108. 970 rem********************************
  109. 1000 print"[147]geht es weiter mit dem n-flag."
  110. 1010 print"das n-flag zeigt an, ob die zuletzt be-"
  111. 1020 print"handelte zahl groesser als $79 (127) "
  112. 1030 print"war oder nicht.wenn sie groesser war,"
  113. 1040 print"dann wird es gesetzt und wenn die"
  114. 1050 print"zahl kleiner war, dann ist sie geloescht"
  115. 1060 print"dieses flag koennen sie auch abfragen"
  116. 1070 print"mit bmi[146] und bpl[146]. bmi (schrittweite)"
  117. 1080 print"verzweigt, wenn das n-flag gesetzt ist"
  118. 1090 print"bpl (schrittweite) verzweigt, wenn das"
  119. 1110 print""tab(14)"taste druecken"
  120. 1120 print""tab(18)"-6-"
  121. 1130 gosub 250 : on a goto 1140 , 780
  122. 1140 rem*******************************
  123. 1150 rem*-------- seite 7 ------------*
  124. 1160 rem*******************************
  125. 1200 print"[147]n-flag geloescht ist.das n-flag wird"
  126. 1210 print"auch als vorzeichen-flag bezeichnet"
  127. 1220 print"das letzte bit eines bytes wird im "
  128. 1230 print"allgemeinen als vorzeichen bit benutzt"
  129. 1240 print"ist dieses bit gesetzt, dann ist das"
  130. 1250 print"byte negativ und ist es geloescht, dann"
  131. 1260 print"ist der wert positiv, dies soll uns noch"
  132. 1270 print"nicht interessieren. jetzt noch ein"
  133. 1280 print"bischen mehr ueber die flags.das z-flag"
  134. 1290 print"gibt an, ob die letzte zahl = 0 war oder"
  135. 1320 print""tab(14)"taste druecken"
  136. 1330 print""tab(18)"-7-"
  137. 1340 gosub 250 : on a goto 1350 , 950
  138. 1350 rem*******************************
  139. 1360 rem*-------- seite 8 ------------*
  140. 1370 rem*******************************
  141. 1400 print"[147]nicht.war sie null, dann ist das z-flag"
  142. 1405 print"gesetzt,falls nicht dann ist sie 0."
  143. 1410 print"wir haben auch fuer das z-flag befehle,"
  144. 1420 print"mit denen wir es abfragen koennen."
  145. 1430 print"diese befehle heissen bne[146] und beq[146]."
  146. 1440 print"bne (schrittweite) verzweigt, wenn die"
  147. 1450 print"letzte zahl ungleich null war (z-flag=0"
  148. 1460 print").beq verzweigt, wenn die letzte zahl"
  149. 1470 print"gleich null war (z-flag=1).wenn wir"
  150. 1480 print"dabei sind machen wir noch ein bischen"
  151. 1510 print""tab(14)"taste druecken"
  152. 1520 print""tab(18)"-8-"
  153. 1530 gosub 250 : on a goto 1550 , 1150
  154. 1540 rem*******************************
  155. 1550 rem*-------- seite 9 ------------*
  156. 1560 rem*******************************
  157. 1565 print"[147]weiter, dann haben wir das auch hinter"
  158. 1570 print"uns.da waere das v-flag."
  159. 1580 print"es wird gesetzt, wenn sich ein ueber-"
  160. 1590 print"trag bei einer rechenoperation ergibt."
  161. 1600 print"dieses flag kann man auch abfragen mit"
  162. 1610 print"folgenden befehlen.bvc[146] und bvs[146]"
  163. 1620 print"bvc verzweigt,falls kein ueberlauf war"
  164. 1630 print"(v-flag=0) und bvs verzweigt,falls ein"
  165. 1640 print"ueberlauf stattgefunden hat (v-flag=1)"
  166. 1650 print"es gibt noch einen befehl fuer's v-flag"
  167. 1680 print" [157]"tab(14)"taste druecken"
  168. 1690 print""tab(18)"-9-"
  169. 1700 gosub 250 : on a goto 1710 , 1350
  170. 1705 rem*******************************
  171. 1710 rem*------- seite 10 ------------*
  172. 1715 rem*******************************
  173. 1716 print"[147]er heisst clv[146], dieser befehl loescht"
  174. 1717 print"das v-flag.als vorletztes waere noch"
  175. 1720 print"das d-flag zu nennen."
  176. 1730 print"man kann es nicht abfragen, aber"
  177. 1740 print"man kann es setzen oder loeschen."
  178. 1750 print"die befehle dazu lauten sed[146] und cld[146]"
  179. 1760 print"sed setzt das d-flag."
  180. 1770 print"cld loescht das d-flag."
  181. 1780 print"wenn das d-flag gesetzt ist, wird der"
  182. 1790 print"dezimalmodus eingeschaltet und wenn"
  183. 1820 print""tab(14)"taste druecken"
  184. 1830 print""tab(17)"-10-"
  185. 1840 gosub 250 : on a goto 1845 , 1550
  186. 1845 rem*******************************
  187. 1846 rem*---------- seite 11 ---------*
  188. 1847 rem*******************************
  189. 1848 print"[147]es geloescht ist, dann wird er wieder"
  190. 1849 print"ausgeschaltet. das letzte flag, ist"
  191. 1850 print"das i-flag. ueber das reden wir aber"
  192. 1860 print"noch spaeter, weil wir es hier noch"
  193. 1870 print"nicht gebrauchen koennen."
  194. 1880 print"geben sie wieder ihr geraet ein"
  195. 1890 a$="":input"d[146] oder f[146]";a$
  196. 1900 if a$ = "f" then f=8 : goto 1930
  197. 1905 if a$ = "z" then 1705
  198. 1910 if a$ = "d" then f=1 : goto 1930
  199. 1915 if a$ = "" then end
  200. 1920 goto 1890
  201. 1930 poke 2,f : poke 45,3 : poke 46,8 : poke 2050,0:load "lektion 5" , peek (2)
  202.